========================================================

这份报告选取了白酒品质数据集,对其进行了探索分析。


单一变量做图


查看数据维度,一共有4898条数据记录,12个变量。

## [1] 4898   12


查看数据结构,11个关于白酒化学成分的变量,都是数值数据;还有一项 quality 是对白酒品质的打分,是0-10之间的整数。

## 'data.frame':    4898 obs. of  12 variables:
##  $ fixed.acidity       : num  7 6.3 8.1 7.2 7.2 8.1 6.2 7 6.3 8.1 ...
##  $ volatile.acidity    : num  0.27 0.3 0.28 0.23 0.23 0.28 0.32 0.27 0.3 0.22 ...
##  $ citric.acid         : num  0.36 0.34 0.4 0.32 0.32 0.4 0.16 0.36 0.34 0.43 ...
##  $ residual.sugar      : num  20.7 1.6 6.9 8.5 8.5 6.9 7 20.7 1.6 1.5 ...
##  $ chlorides           : num  0.045 0.049 0.05 0.058 0.058 0.05 0.045 0.045 0.049 0.044 ...
##  $ free.sulfur.dioxide : num  45 14 30 47 47 30 30 45 14 28 ...
##  $ total.sulfur.dioxide: num  170 132 97 186 186 97 136 170 132 129 ...
##  $ density             : num  1.001 0.994 0.995 0.996 0.996 ...
##  $ pH                  : num  3 3.3 3.26 3.19 3.19 3.26 3.18 3 3.3 3.22 ...
##  $ sulphates           : num  0.45 0.49 0.44 0.4 0.4 0.44 0.47 0.45 0.49 0.45 ...
##  $ alcohol             : num  8.8 9.5 10.1 9.9 9.9 10.1 9.6 8.8 9.5 11 ...
##  $ quality             : int  6 6 6 6 6 6 6 6 6 6 ...


查看数据的统计量。

##  fixed.acidity    volatile.acidity  citric.acid     residual.sugar  
##  Min.   : 3.800   Min.   :0.0800   Min.   :0.0000   Min.   : 0.600  
##  1st Qu.: 6.300   1st Qu.:0.2100   1st Qu.:0.2700   1st Qu.: 1.700  
##  Median : 6.800   Median :0.2600   Median :0.3200   Median : 5.200  
##  Mean   : 6.855   Mean   :0.2782   Mean   :0.3342   Mean   : 6.391  
##  3rd Qu.: 7.300   3rd Qu.:0.3200   3rd Qu.:0.3900   3rd Qu.: 9.900  
##  Max.   :14.200   Max.   :1.1000   Max.   :1.6600   Max.   :65.800  
##    chlorides       free.sulfur.dioxide total.sulfur.dioxide
##  Min.   :0.00900   Min.   :  2.00      Min.   :  9.0       
##  1st Qu.:0.03600   1st Qu.: 23.00      1st Qu.:108.0       
##  Median :0.04300   Median : 34.00      Median :134.0       
##  Mean   :0.04577   Mean   : 35.31      Mean   :138.4       
##  3rd Qu.:0.05000   3rd Qu.: 46.00      3rd Qu.:167.0       
##  Max.   :0.34600   Max.   :289.00      Max.   :440.0       
##     density             pH          sulphates         alcohol     
##  Min.   :0.9871   Min.   :2.720   Min.   :0.2200   Min.   : 8.00  
##  1st Qu.:0.9917   1st Qu.:3.090   1st Qu.:0.4100   1st Qu.: 9.50  
##  Median :0.9937   Median :3.180   Median :0.4700   Median :10.40  
##  Mean   :0.9940   Mean   :3.188   Mean   :0.4898   Mean   :10.51  
##  3rd Qu.:0.9961   3rd Qu.:3.280   3rd Qu.:0.5500   3rd Qu.:11.40  
##  Max.   :1.0390   Max.   :3.820   Max.   :1.0800   Max.   :14.20  
##     quality     
##  Min.   :3.000  
##  1st Qu.:5.000  
##  Median :6.000  
##  Mean   :5.878  
##  3rd Qu.:6.000  
##  Max.   :9.000


绘制 quality 变量的直方图。


绘制 quality 变量的箱图。


quality 变量的统计量。

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   5.000   6.000   5.878   6.000   9.000


quality 变量的分布情况。

## 
##    3    4    5    6    7    8    9 
##   20  163 1457 2198  880  175    5


从上面关于 quality 变量的绘图和统计结果可以发现, 品质打分 quality 变量是离散的,数值在3分到9分之间,6分的数据最多,并且向两边递减,数据主要集中在5-7分之间。


固定酸度(fixed.acidity) 的直方图,形态接近正态分布。


挥发酸度(volatile.acidity) 的直方图,接近正态分布,右偏。


柠檬酸(citric.acid)的直方图,总体接近正态分布,在0.49处数据量有陡增。


残糖(residual.sugar)的直方图。


残糖(residual.sugar)的箱图。

残糖(residual.sugar)直方图中看出这一变量数据集中在比较小的数值部分,且有多个峰,大体上有向右递减的趋势。 从它的箱图上看出有异常大的离群值存在。


氯化物(chlorides)的直方图,右侧有非常长的尾巴。


游离二氧化硫(free.sulfur.dioxide)的直方图,有异常大的离群值。


总二氧化硫(total.sulfur.dioxide)的直方图。


密度(density)的直方图。


酸碱度(pH)的直方图。


硫酸盐(sulphates)的直方图。


酒精度(alcohol)的直方图,分布不是很规则,总体上有向右递减的趋势。



单一变量分析


数据集的结构是怎样的?

该白酒数据集一共有4898条数据记录,包含11个化学成分的变量,以及1项品质打分的变量。 品质打分 quality 是0-10之间的整数,11个化学成分变量分别是:

  1. fixed.acidity 固定酸度 (是不改变、不挥发的)[ 单位:g/ dm^3 ]
  2. volatile.acidity 挥发酸度 (醋酸含量,浓度太高时影响口感)[ 单位: g/dm^3 ]
  3. citric.acid 柠檬酸 (量少, 带来“新鲜”的口感)[ 单位:g/dm^3 ]
  4. residual.sugar 残糖 (发酵完成后剩余的糖, 一般在 1 - 45 间)[ 单位:g/dm^3 ]
  5. chlorides 氯化物 (含盐量)[ 单位:g/dm^3 ]
  6. free.sulfur.dioxide 游离二氧化硫 (阻碍微生物繁殖,防止白酒氧化)[ 单位: mg/dm^3 ]
  7. total.sulfur.dioxide 总二氧化硫 (低浓度下难被感觉到,游离SO2浓度超过50 ppm时,可被味觉和嗅觉识别)[ 单位:mg/dm^3 ]
  8. density 浓度 (与酒精和糖的浓度有关)[ 单位: g/cm^3 ]
  9. PH 酸碱度 (大部分酒处在3-4之间)
  10. sulphates 硫酸盐 (酒中的添加剂,贡献SO2,起到抗菌和抗氧化作用)[ 单位: g/dm^3 ]
  11. alcohol 酒精浓度 [ 单位:%]

其他观察到的现象:

  • quality 变量是离散的,数值在3分到9分之间,6分的数据最多,并且向两边递减,数据主要集中在5-7分之间。
  • 大部分变量的分布都接近正态分布,并且在右侧有一条长尾。
  • 而 residual.sugar 和 alcohol 这两个变量的分布与其他变量不同,数据主要集中在左侧,并向右递减。


数据集中最感兴趣的特征有哪些?

这份数据集中最感兴趣的特征是白酒的品质 quality 变量,它是三位评酒师给出的打分数据。 这里希望探究 quality 变量与白酒化学成分之间的关系,哪些化学成分会影响白酒品质的好坏。


你认为数据集中还有哪些特征将有助于你对感兴趣特征的研究?

因为 quality 变量是由人给出的打分,所以根据人们能感知到的酸甜苦辣咸等, 猜测酒精度(alcohol)、 酸度(fixed.acidity、volatile.acidity、PH)、 含盐量(chlorides)、 含糖量(residual.sugar)这些都对白酒品质 quality 有影响。 另外总二氧化硫(total.sulfur.dioxide)浓度较大时,也能被味觉和嗅觉识别,所以猜测它也能影响 quality。 当然,这些特征到底对 quality 有多大的贡献,还需要后续进一步的数据分析。



两个变量做图


相关系数矩阵。

##                      fixed.acidity volatile.acidity citric.acid
## fixed.acidity                 1.00            -0.02        0.29
## volatile.acidity             -0.02             1.00       -0.15
## citric.acid                   0.29            -0.15        1.00
## residual.sugar                0.09             0.06        0.09
## chlorides                     0.02             0.07        0.11
## free.sulfur.dioxide          -0.05            -0.10        0.09
## total.sulfur.dioxide          0.09             0.09        0.12
## density                       0.27             0.03        0.15
## pH                           -0.43            -0.03       -0.16
## sulphates                    -0.02            -0.04        0.06
## alcohol                      -0.12             0.07       -0.08
## quality                      -0.11            -0.19       -0.01
##                      residual.sugar chlorides free.sulfur.dioxide
## fixed.acidity                  0.09      0.02               -0.05
## volatile.acidity               0.06      0.07               -0.10
## citric.acid                    0.09      0.11                0.09
## residual.sugar                 1.00      0.09                0.30
## chlorides                      0.09      1.00                0.10
## free.sulfur.dioxide            0.30      0.10                1.00
## total.sulfur.dioxide           0.40      0.20                0.62
## density                        0.84      0.26                0.29
## pH                            -0.19     -0.09                0.00
## sulphates                     -0.03      0.02                0.06
## alcohol                       -0.45     -0.36               -0.25
## quality                       -0.10     -0.21                0.01
##                      total.sulfur.dioxide density    pH sulphates alcohol
## fixed.acidity                        0.09    0.27 -0.43     -0.02   -0.12
## volatile.acidity                     0.09    0.03 -0.03     -0.04    0.07
## citric.acid                          0.12    0.15 -0.16      0.06   -0.08
## residual.sugar                       0.40    0.84 -0.19     -0.03   -0.45
## chlorides                            0.20    0.26 -0.09      0.02   -0.36
## free.sulfur.dioxide                  0.62    0.29  0.00      0.06   -0.25
## total.sulfur.dioxide                 1.00    0.53  0.00      0.13   -0.45
## density                              0.53    1.00 -0.09      0.07   -0.78
## pH                                   0.00   -0.09  1.00      0.16    0.12
## sulphates                            0.13    0.07  0.16      1.00   -0.02
## alcohol                             -0.45   -0.78  0.12     -0.02    1.00
## quality                             -0.17   -0.31  0.10      0.05    0.44
##                      quality
## fixed.acidity          -0.11
## volatile.acidity       -0.19
## citric.acid            -0.01
## residual.sugar         -0.10
## chlorides              -0.21
## free.sulfur.dioxide     0.01
## total.sulfur.dioxide   -0.17
## density                -0.31
## pH                      0.10
## sulphates               0.05
## alcohol                 0.44
## quality                 1.00


将相关系数矩阵转换成热图,方便观察。


从相关系数矩阵及其对应的热图中,我们可以发现如下变量之间的相关性:


绘制各变量的矩阵散点图。


从上面的矩阵散点图中,我们能发现有些变量之间有显著的线性相关性,最明显的就是 density 与 residual.sugar、alcohol 之间的线性相关性。下面就单独来观察他们散点图。


绘制 density 与 residual.sugar 的散点图,并进行线性拟合。


从上图可以看出,density 与 residual.sugar 这两个变量之间有非常好的线性相关性。 之前计算得到的相关系数是0.84,相关性非常强。可见,白酒中的含糖量增加,密度也增加。


绘制 density 与 alcohol 的散点图,并进行线性拟合。


由于 alcohol 在数值上之精确到0.1,所以上图中的alcohol看上去像是离散的。可以通过增加抖动来解决这一问题,如下图所示。


从图中可以看出,density 与 alcohol 成非常强的负的线性相关性,之前计算得到的相关系数是 -0.78。 含酒精量越高,密度越低,这与常识是一致的,因为酒精的密度低于水的密度。


total.sulfur.dioxide 和 free.sulfur.dioxide 的相关系数有0.62,再来看他们之间的散点图。


pH 和 fixed.acidity 的相关系数是 -0.43, 看一下他们之间的散点图。 可见,固定酸度越高,PH值越低,与常识一致。


在查看完几组相关性比较高的变量之后,现在来观察下我们主要感兴趣的变量白酒品质 quality 与白酒化学成分变量之间的关系。

由于 quality 与 alcohol 的相关度最高,相关系数有0.44, 所以我们首先来绘制 quality 与 alcohol 的散点图,并增加抖动和线性拟合, 同时在其上叠加上箱图,便于观察数据的分布情况。


从上图看,alcohol 与 quality 之间的线性关系并不是特别明显。 并且观察箱图发现,alcohol 的中位数并非是随 quality 线性增长的, 而是随着quality 增加,alcohol 中位数先降低,后升高。

下面具体看下不同 quallity 下,alcohol 在数值上的统计量。

## wine$quality_factor: 3
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.00    9.55   10.45   10.35   11.00   12.60 
## -------------------------------------------------------- 
## wine$quality_factor: 4
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.40    9.40   10.10   10.15   10.75   13.50 
## -------------------------------------------------------- 
## wine$quality_factor: 5
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   8.000   9.200   9.500   9.809  10.300  13.600 
## -------------------------------------------------------- 
## wine$quality_factor: 6
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.50    9.60   10.50   10.58   11.40   14.00 
## -------------------------------------------------------- 
## wine$quality_factor: 7
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.60   10.60   11.40   11.37   12.30   14.20 
## -------------------------------------------------------- 
## wine$quality_factor: 8
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.50   11.00   12.00   11.64   12.60   14.00 
## -------------------------------------------------------- 
## wine$quality_factor: 9
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.40   12.40   12.50   12.18   12.70   12.90


将白酒分为高低档两个等级,当分数低于6时,为低档;当分数大于等于6时,为高档。 然后计算这两个等级的白酒 quality 与 alcohol 之间的相关性。

低档白酒 quality 与 alcohol 的相关系数为:

## [1] -0.1321443

高档白酒 quality 与 alcohol 的相关系数为:

## [1] 0.3116863

从上面的计算中发现,对低档白酒,酒精度越高,评分越低;对高档白酒,酒精度越高,评分越高。 它们之间有着完全相反的相关性。


用线性模型对 quality 进行拟合,只考虑 alcohol 的贡献。 由上面的探索知道,它们之间并没有很强的线性相关性,所以这里也考虑了多项式拟合, 即包含了alcohol 一阶、两阶、三阶的情况。

## 
## Calls:
## m1: lm(formula = quality ~ alcohol, data = wine)
## m2: lm(formula = quality ~ alcohol + I(alcohol^2), data = wine)
## m3: lm(formula = quality ~ alcohol + I(alcohol^2) + I(alcohol^3), 
##     data = wine)
## 
## ============================================================
##                        m1            m2            m3       
## ------------------------------------------------------------
##   (Intercept)         2.582***      6.038***     44.294***  
##                      (0.098)       (0.846)       (6.804)    
##   alcohol             0.313***     -0.335*      -11.010***  
##                      (0.009)       (0.158)       (1.891)    
##   I(alcohol^2)                      0.030***      1.014***  
##                                    (0.007)       (0.174)    
##   I(alcohol^3)                                   -0.030***  
##                                                  (0.005)    
## ------------------------------------------------------------
##   R-squared           0.190         0.193         0.198     
##   adj. R-squared      0.190         0.192         0.197     
##   sigma               0.797         0.796         0.793     
##   F                1146.395       583.526       402.190     
##   p                   0.000         0.000         0.000     
##   Log-likelihood  -5839.391     -5830.937     -5814.925     
##   Deviance         3112.257      3101.532      3081.320     
##   AIC             11684.782     11669.875     11639.851     
##   BIC             11704.272     11695.861     11672.334     
##   N                4898          4898          4898         
## ============================================================


当使用多项式拟合时,r方略有增长,从 0.190 增加到 0.198。


接下来我们观察 quality 与 density 的关系。它们的相关系数是 -0.31。

绘制 density 与 quallity 的散点图和箱图,并增加抖动和透明度, 同时忽略了若干离群值,方便观察数据的主体部分。


chlorides 与 quality 的散点图和箱图。


volatile.acidity 与 quality 的散点图和箱图。


total.sulfur.dioxide 与 quality 的散点图和箱图。


虽然 quality 与 chlorides、volatile.acidity、total.sulfur.dioxide 之间有相对来说较大的相关系数,约在-0.2左右, 这个数值并不大,所以从图中并没有发现它们之间非常明显的线性关系。



两个变量分析


讲述一下你在这一部分探索中观察到的关系。感兴趣的特征是怎样随其他特征变化的?

这里感兴趣的特征是白酒品质 quality,它与其他特征的关系如下:

  • quality 与酒精度 alcohol 的相关性最大,有0.44,是正相关。但如果将白酒分为两个等级,对低档白酒(评分小于6),酒精度越高,评分越低;对高档白酒(评分大于等于6),酒精度越高,评分越高;这两个等级的就有着相反的相关性。

  • 其次相关的是密度 density,呈负相关,相关系数是-0.31。

  • quality 与 chlorides、volatile.acidity、total.sulfur.dioxide 这三个特征的相关性相对来说较大,在-0.2左右。


你有没有在其他特征中观察到有意思的关系?

在其他特征中,观察到密度 density 与 残糖 residual.sugar、酒精度 alcohol 有着非常高的线性相关性。 密度与残糖呈正相关的关系,相关系数是0.84,含糖量越高,密度越大。 密度与酒精度呈负相关,相关系数-0.78,含酒精度越高,密度越小。 这与物理常识是一致的。

还有如总SO2量 total.sulfur.dioxide 和游离SO2量 free.sulfur.dioxide, 也有较高的线性相关,相关系数达0.62。 这大概是因为他们都描述了SO2的含量,只是SO2的形态不一。

PH值反应的是酸碱度,所以它应该和酒中的酸度有关。计算发现 PH 和固定酸度 fixed.acidity 有较强的负相关,相关系数达 -0.42。 因为含酸的浓度越高,PH值越低,所以是负相关的。 但是 PH 和挥发酸度 volatile.acidity 的相关性很小,这大概是因为挥发性的酸对PH影响很小,因为容易挥发的缘故。


你发现的最强的关系是什么?

最强的关系就是密度 density 与 残糖 residual.sugar 这两个变量,它们的相关系数达到0.84。



多个变量做图


首先采用 facet_wrap 的方法,绘制不同 quality 下,density 与 alcohol 关系的散点图。


从上面的一系列图中,发现随着 quality 分数变大,数据点有向右下角集中的趋势。 所以让我们在同一幅图中来绘制 density 与 alcohol 之间的散点图,并用不同颜色的点来区分不同的 quality。


从上图发现,从左上到右下角,quality 有逐渐增大的趋势。

由于上图中颜色种类太多,不利于观察,这里将 quanlity 分数切分成三份, 即将白酒品质按 quality 分为低(0-5)、中(6)、高(7-10)这三个等级。 在每一等级中数据量的分布如下:

## 
##  (0,5]  (5,6] (6,10] 
##   1640   2198   1060


然后我们用重新分组的 quality 等级来绘制类似的图。


从这幅图中,就可以很容易的看出,低等的酒主要分布在左上角,高等的酒主要分布在右下角。 也就是说,密度越大、酒精度越低,品质越低;而密度越小、酒精度越高,品质也越高。


类似的,绘制 density 和 residual.sugar 之间的散点图,用白酒品质的高中低来区分数据点。


高中低三种品质的白酒在上述的散点图中,有着比较明显的分层, 当残糖 residual.sugar 固定时,密度越高,白酒品质越可能降低。


下面来观察 density、residual.sugar 和 alcohol 这三个变量之间的关系。 将酒精度 alcohol 这一连续变量离散化,按1度进行分隔。 然后在图中绘制 density 和 residual.sugar 之间的散点图, 并使用颜色区分不同的酒精度区间,颜色从浅到深,依次表示酒精度增大。


density 与 residual.sugar 和 alcohol 这两个变量存在强相关性。 在相同 alcohol 区间中,density 随 residual.sugar 增大而增大。 当固定 residual.sugar 变量时, density 随 alcohol 增大而减小。 这与之前计算的相关系数是一致的。


接下来采用线性回归,通过白酒的各项化学指标来拟合白酒品质 quality 这项数值。

首先将所有11个化学特征都考虑进来,得到拟合的结果如下:

## 
## Calls:
## m1: lm(formula = quality ~ fixed.acidity + volatile.acidity + citric.acid + 
##     residual.sugar + chlorides + free.sulfur.dioxide + total.sulfur.dioxide + 
##     density + pH + sulphates + alcohol, data = wine)
## 
## ======================================
##   (Intercept)             150.193***  
##                           (18.804)    
##   fixed.acidity             0.066**   
##                            (0.021)    
##   volatile.acidity         -1.863***  
##                            (0.114)    
##   citric.acid               0.022     
##                            (0.096)    
##   residual.sugar            0.081***  
##                            (0.008)    
##   chlorides                -0.247     
##                            (0.547)    
##   free.sulfur.dioxide       0.004***  
##                            (0.001)    
##   total.sulfur.dioxide     -0.000     
##                            (0.000)    
##   density                -150.284***  
##                           (19.075)    
##   pH                        0.686***  
##                            (0.105)    
##   sulphates                 0.631***  
##                            (0.100)    
##   alcohol                   0.193***  
##                            (0.024)    
## --------------------------------------
##   R-squared                 0.282     
##   adj. R-squared            0.280     
##   sigma                     0.751     
##   F                       174.344     
##   p                         0.000     
##   Log-likelihood        -5543.740     
##   Deviance               2758.329     
##   AIC                   11113.480     
##   BIC                   11197.936     
##   N                      4898         
## ======================================

这里得到R方的值为0.282。


考虑到并非所有的特征对 quality 都是有贡献的,我们需要做特征选择。 这里使用R语言中的step()函数,通过判断AIC的方法来选择线性模型中需要的特征。

## Start:  AIC=-1188.69
## quality ~ 1
## 
##                        Df Sum of Sq    RSS     AIC
## + alcohol               1    728.73 3112.3 -2217.1
## + density               1    362.30 3478.7 -1672.0
## + chlorides             1    169.28 3671.7 -1407.5
## + volatile.acidity      1    145.64 3695.4 -1376.0
## + total.sulfur.dioxide  1    117.28 3723.7 -1338.6
## + fixed.acidity         1     49.62 3791.4 -1250.4
## + pH                    1     37.97 3803.0 -1235.3
## + residual.sugar        1     36.57 3804.4 -1233.5
## + sulphates             1     11.07 3829.9 -1200.8
## <none>                              3841.0 -1188.7
## + citric.acid           1      0.33 3840.7 -1187.1
## + free.sulfur.dioxide   1      0.26 3840.7 -1187.0
## 
## Step:  AIC=-2217.14
## quality ~ alcohol
## 
##                        Df Sum of Sq    RSS     AIC
## + volatile.acidity      1   193.992 2918.3 -2530.4
## + free.sulfur.dioxide   1    56.181 3056.1 -2304.4
## + residual.sugar        1    46.959 3065.3 -2289.6
## + fixed.acidity         1    14.509 3097.8 -2238.0
## + sulphates             1    14.424 3097.8 -2237.9
## + chlorides             1    12.419 3099.8 -2234.7
## + density               1    10.484 3101.8 -2231.7
## + pH                    1     8.442 3103.8 -2228.4
## + citric.acid           1     2.184 3110.1 -2218.6
## + total.sulfur.dioxide  1     2.079 3110.2 -2218.4
## <none>                              3112.3 -2217.1
## 
## Step:  AIC=-2530.37
## quality ~ alcohol + volatile.acidity
## 
##                        Df Sum of Sq    RSS     AIC
## + residual.sugar        1    70.271 2848.0 -2647.8
## + free.sulfur.dioxide   1    40.484 2877.8 -2596.8
## + density               1    25.639 2892.6 -2571.6
## + fixed.acidity         1    16.109 2902.2 -2555.5
## + total.sulfur.dioxide  1    11.165 2907.1 -2547.2
## + sulphates             1    11.006 2907.3 -2546.9
## + pH                    1     5.489 2912.8 -2537.6
## + chlorides             1     4.473 2913.8 -2535.9
## <none>                              2918.3 -2530.4
## + citric.acid           1     0.301 2918.0 -2528.9
## 
## Step:  AIC=-2647.76
## quality ~ alcohol + volatile.acidity + residual.sugar
## 
##                        Df Sum of Sq    RSS     AIC
## + free.sulfur.dioxide   1   21.0028 2827.0 -2682.0
## + density               1   20.8069 2827.2 -2681.7
## + fixed.acidity         1   19.0015 2829.0 -2678.5
## + pH                    1   13.5270 2834.5 -2669.1
## + sulphates             1   13.0677 2834.9 -2668.3
## + total.sulfur.dioxide  1    1.9014 2846.1 -2649.0
## + chlorides             1    1.6387 2846.3 -2648.6
## + citric.acid           1    1.5879 2846.4 -2648.5
## <none>                              2848.0 -2647.8
## 
## Step:  AIC=-2682.01
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide
## 
##                        Df Sum of Sq    RSS     AIC
## + density               1   19.0411 2807.9 -2713.1
## + fixed.acidity         1   15.4963 2811.5 -2706.9
## + pH                    1   11.4714 2815.5 -2699.9
## + sulphates             1   11.0877 2815.9 -2699.3
## + total.sulfur.dioxide  1    2.4096 2824.6 -2684.2
## + chlorides             1    2.2177 2824.8 -2683.8
## + citric.acid           1    2.2107 2824.8 -2683.8
## <none>                              2827.0 -2682.0
## 
## Step:  AIC=-2713.11
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide + 
##     density
## 
##                        Df Sum of Sq    RSS     AIC
## + pH                    1   23.9315 2784.0 -2753.0
## + sulphates             1   22.2233 2785.7 -2750.0
## + fixed.acidity         1    4.1638 2803.8 -2718.4
## + chlorides             1    1.4137 2806.5 -2713.6
## <none>                              2807.9 -2713.1
## + citric.acid           1    0.4310 2807.5 -2711.9
## + total.sulfur.dioxide  1    0.0843 2807.9 -2711.3
## 
## Step:  AIC=-2753.04
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide + 
##     density + pH
## 
##                        Df Sum of Sq    RSS     AIC
## + sulphates             1   18.9648 2765.1 -2784.5
## + fixed.acidity         1    2.9318 2781.1 -2756.2
## <none>                              2784.0 -2753.0
## + chlorides             1    0.5578 2783.5 -2752.0
## + citric.acid           1    0.2232 2783.8 -2751.4
## + total.sulfur.dioxide  1    0.0992 2783.9 -2751.2
## 
## Step:  AIC=-2784.51
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide + 
##     density + pH + sulphates
## 
##                        Df Sum of Sq    RSS     AIC
## + fixed.acidity         1    6.2700 2758.8 -2793.6
## <none>                              2765.1 -2784.5
## + chlorides             1    0.5311 2764.5 -2783.5
## + total.sulfur.dioxide  1    0.4328 2764.6 -2783.3
## + citric.acid           1    0.1415 2764.9 -2782.8
## 
## Step:  AIC=-2793.63
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide + 
##     density + pH + sulphates + fixed.acidity
## 
##                        Df Sum of Sq    RSS     AIC
## <none>                              2758.8 -2793.6
## + total.sulfur.dioxide  1   0.32024 2758.5 -2792.2
## + chlorides             1   0.10967 2758.7 -2791.8
## + citric.acid           1   0.01298 2758.8 -2791.7
## 
## Call:
## lm(formula = quality ~ alcohol + volatile.acidity + residual.sugar + 
##     free.sulfur.dioxide + density + pH + sulphates + fixed.acidity, 
##     data = wine)
## 
## Coefficients:
##         (Intercept)              alcohol     volatile.acidity  
##           1.541e+02            1.932e-01           -1.888e+00  
##      residual.sugar  free.sulfur.dioxide              density  
##           8.285e-02            3.349e-03           -1.543e+02  
##                  pH            sulphates        fixed.acidity  
##           6.942e-01            6.285e-01            6.810e-02


最终,我们从11项特征中选择了8项,分别是 alcohol、volatile.acidity、residual.sugar、 free.sulfur.dioxide、density 、pH、sulphates、fixed.acidity。 用它们做线性拟合的结果如下:

## 
## Calls:
## m2: lm(formula = quality ~ alcohol + volatile.acidity + residual.sugar + 
##     free.sulfur.dioxide + density + pH + sulphates + fixed.acidity, 
##     data = wine)
## 
## =====================================
##   (Intercept)            154.106***  
##                          (18.100)    
##   alcohol                  0.193***  
##                           (0.024)    
##   volatile.acidity        -1.888***  
##                           (0.110)    
##   residual.sugar           0.083***  
##                           (0.007)    
##   free.sulfur.dioxide      0.003***  
##                           (0.001)    
##   density               -154.291***  
##                          (18.344)    
##   pH                       0.694***  
##                           (0.103)    
##   sulphates                0.629***  
##                           (0.100)    
##   fixed.acidity            0.068***  
##                           (0.020)    
## -------------------------------------
##   R-squared                0.282     
##   adj. R-squared           0.281     
##   sigma                    0.751     
##   F                      239.730     
##   p                        0.000     
##   Log-likelihood       -5544.144     
##   Deviance              2758.783     
##   AIC                  11108.288     
##   BIC                  11173.254     
##   N                     4898         
## =====================================

得到的R方依然是0.282。


接着我们考虑多项式拟合,在上面选出的8个特征组成的线性模型中,再加入这些特征的平方项。 拟合结果如下:

## 
## Calls:
## m3: lm(formula = quality ~ alcohol + I(alcohol^2) + volatile.acidity + 
##     I(volatile.acidity^2) + residual.sugar + I(residual.sugar^2) + 
##     free.sulfur.dioxide + I(free.sulfur.dioxide^2) + density + 
##     I(density^2) + pH + I(pH^2) + sulphates + I(sulphates^2) + 
##     fixed.acidity + I(fixed.acidity^2), data = wine)
## 
## ===========================================
##   (Intercept)                 6655.513***  
##                              (1040.689)    
##   alcohol                       -0.515**   
##                                 (0.163)    
##   I(alcohol^2)                   0.027***  
##                                 (0.007)    
##   volatile.acidity              -3.105***  
##                                 (0.378)    
##   I(volatile.acidity^2)          1.692***  
##                                 (0.504)    
##   residual.sugar                 0.136***  
##                                 (0.012)    
##   I(residual.sugar^2)           -0.002***  
##                                 (0.001)    
##   free.sulfur.dioxide            0.014***  
##                                 (0.001)    
##   I(free.sulfur.dioxide^2)      -0.000***  
##                                 (0.000)    
##   density                   -13143.824***  
##                              (2087.200)    
##   I(density^2)                6495.041***  
##                              (1046.538)    
##   pH                            -3.041     
##                                 (2.003)    
##   I(pH^2)                        0.625*    
##                                 (0.311)    
##   sulphates                      0.759     
##                                 (0.569)    
##   I(sulphates^2)                -0.045     
##                                 (0.511)    
##   fixed.acidity                  0.705***  
##                                 (0.117)    
##   I(fixed.acidity^2)            -0.040***  
##                                 (0.008)    
## -------------------------------------------
##   R-squared                      0.314     
##   adj. R-squared                 0.311     
##   sigma                          0.735     
##   F                            139.414     
##   p                              0.000     
##   Log-likelihood             -5432.863     
##   Deviance                    2636.231     
##   AIC                        10901.726     
##   BIC                        11018.664     
##   N                           4898         
## ===========================================

这时,我们发现R方值略有增加,变为0.314。看来多项式拟合还是对拟合效果有所提升的。



多个变量分析


讲述一下你在这一部分探索中观察到的关系。在你感兴趣的特征方面,这些特征有没有相互增强?

在用白酒品质进行区分的 density 与 alcohol 的散点图中发现, 当白酒密度越大、酒精度越低时,品质也越低;而密度越小、酒精度越高,品质也越高。

在用白酒品质进行区分的 density 和 residual.sugar 的散点图, 高中低三种品质的白酒在图上有着比较明显的分层, 当残糖 residual.sugar 固定时,密度越高,白酒品质越可能降低。


在特征之间有没有任何有趣或意外的交互?

白酒的密度 density 与酒精度 alcohol 及含糖量 residual.sugar 有着非常强的相关性。 在相同 alcohol 区间中,density 随 residual.sugar 增大而增大。 当固定 residual.sugar 变量时, density 随 alcohol 增大而减小。 这与之前计算的相关系数是一致的。


可选:你为数据集创建模型了吗?讨论下你模型的优缺点。

这里使用了线性回归模型,通过白酒的化学特征来拟合白酒品质 quality 变量。

优点:

  • 线性回归简单快速,对数据做探索性分析有一定帮助,便于后面设计更复杂的模型。
  • 文中对特征进行了筛选,使用R语言中的step()函数,通过AIC下降的方法从11项特征中选择了8项,去除了不必要特征的干扰。
  • 最后还使用了多项式拟合,在原有的线性模型中加入了特征的平方项,将R方值从0.282提升到0.314。

缺点:

  • 模型比较粗糙,拟合效果并不是特别理想,R方值比较小,用来做白酒品质预测并不十分准确。
  • 没有将数据分为训练集和测试集,因此也没能准确评估模型的误差。




最终图形和摘要


图一


关于图一的描述

这幅图非常直观的反应了数据集中各个变量之间的相关性。 图中使用两种色调来反映不同方向的相关性,红色表示正相关,蓝色表示负相关。 并且颜色越深,相关系数越大。 通过观察相关系数矩阵的热图,比直接查看相关系数矩阵,更容易发现其中隐藏的规律,特别是在变量比较多时。 比如从图一中就很容易发现密度 density 与残糖 residual.sugar 有很强的正相关,与酒精度 alcohol 有很强的负相关。 再比如白酒品质 quality 除了与酒精度 alcohol 有较强的相关性,与其他特征之间的相关性都比较弱。


图二


关于图二的描述

图二分别通过散点图和箱图这两种方式,来描述白酒品质 quality 与酒精度 alcohol 之间的关系。 散点图通过抖动和设置透明度的方法,将原本过度重合的点进行区分。 虽然 quality 与 alcohol 的相关系数是 0.44,但通过箱图我们观察到,其实 quality 并非随 alcohol 的增大而增大的: 在品质小于6时,酒精度越高,品质可能越低,是负相关的; 而在品质大于等于6时, 酒精度越高,品质越有可能提高,是正相关的。


图三


关于图三的描述

图三反应了白酒密度 density、酒精度 alcohol、品质 quality 这三者之间的关系。 为了便于观察,图中将白酒品质分成了高中低三档,分别对应 quality 小于6、等于6、大于6这三种情况。 首先能看到的是,无论对于哪一等级的白酒,密度与酒精度之间有很强的负的线性相关性,这是由密度的物理性质决定的。 其次可以发现的是,如果只观察低档和高档酒,它们主要集中于上述散点图的两个方位: 即低档酒更偏向于左上角,而高档酒更偏向于右下角,但是中档酒就没有这么明显的集中趋势。 也就是说密度越高、酒精度越低,白酒的品质可能越低;密度越低,酒精度越高,白酒的品质可能越高。




反思


在这篇白酒数据集的探索分析报告中,我首先通过数值统计量和直方图、箱图的形式,了解了数据集中各个变量的分布。 然后通过计算相关系数,绘制相关矩阵热图、各变量之间的散点图、箱图的方式,观察变量之间相关性。 接着探索了数据集中多个变量之间的关系。 最后使用线性回归模型,通过白酒的化学特征对其品质得分进行了拟合。

在探索白酒品质 quality 与其他化学成分之间的关系时,并没有发现很强的相关性,大多数化学特征与品质得分的相关性都比较弱。 更令人沮丧的是,即使是相关系数相对较大的酒精度 alcohol 这一特征,与 quality 的线性拟合结果也不是很好。 通过图二中绘制的箱图,进一步发现,在品质比较低时,品质与酒精度负相关;品质较高时,品质与酒精度正相关。 因此也预示着它们的线性关系并不是特别理想。

在接下来使用线性回归模型通过白酒的化学特征拟合品质得分时,得到的R方值较小, 这也进一步证实使用粗糙的线性回归模型,并不能很好预测白酒品质。 这里我也做了一些努力和尝试,比如通过step()函数来筛选特征,并增加模型中特征的平方项,使得R方的值略有提高。

在探索多个变量相互关系的图三中,我受到了一定的启发。 由于观察到品质高和低的两档白酒在 density ~ alcohol 的散点图中,有向两个不同方向集中的趋势, 也许可以采用分类的方法来预测白酒的品质。 因为白酒品质打分是离散的数值,可以看成是若干个分类, 通过使用决策树、随机森林等分类方法,也许比线性回归能更好的预测白酒的品质得分。

所以在未来更进一步的分析中,可以采用分类模型来预测白酒品质得分,提高预测的准确性。 另外针对数据集,也需要拆分成训练集和测试集,以提高对预测可靠性的衡量。

另一个未来可拓展的角度,就是将红酒数据也包括进来,同时分析和对比白酒和红酒的相同点和差异性,让数据探索更丰富和全面。




参考资料